import 'dart:io';
import 'package:flutter/material.dart';

/// 图片工具类
class ImageUtils {
  /// 根据路径类型返回对应的ImageProvider
  static ImageProvider getImageProvider(String imagePath) {
    if (imagePath.isEmpty) {
      // 如果路径为空，返回默认头像
      return const AssetImage('assets/images/avatar1.png');
    }
    
    // 检查是否是assets路径
    if (imagePath.startsWith('assets/')) {
      return AssetImage(imagePath);
    }
    
    // 检查是否是本地文件路径
    if (imagePath.startsWith('/') || imagePath.contains('\\')) {
      final file = File(imagePath);
      if (file.existsSync()) {
        return FileImage(file);
      }
    }
    
    // 检查是否是网络图片
    if (imagePath.startsWith('http://') || imagePath.startsWith('https://')) {
      return NetworkImage(imagePath);
    }
    
    // 默认情况下，尝试作为assets处理
    return AssetImage(imagePath);
  }

  /// 创建圆形头像Widget
  static Widget buildCircularAvatar({
    required String imagePath,
    required double size,
    Widget? placeholder,
    Color? backgroundColor,
  }) {
    return Container(
      width: size,
      height: size,
      decoration: BoxDecoration(
        shape: BoxShape.circle,
        color: backgroundColor,
        image: imagePath.isNotEmpty
            ? DecorationImage(
                image: getImageProvider(imagePath),
                fit: BoxFit.cover,
              )
            : null,
      ),
      child: imagePath.isEmpty ? placeholder : null,
    );
  }

  /// 检查图片路径是否有效
  static bool isValidImagePath(String imagePath) {
    if (imagePath.isEmpty) return false;
    
    // Assets路径
    if (imagePath.startsWith('assets/')) return true;
    
    // 网络图片
    if (imagePath.startsWith('http://') || imagePath.startsWith('https://')) {
      return true;
    }
    
    // 本地文件
    if (imagePath.startsWith('/') || imagePath.contains('\\')) {
      return File(imagePath).existsSync();
    }
    
    return false;
  }

  /// 获取默认头像路径
  static String getDefaultAvatarPath() {
    return 'assets/images/avatar1.png';
  }
}
